
\section{Implementación de múltiples buffers}

En este punto se deseaba implementar un Buffer Pool que delegara el almacenamiento de cada página en distintos pools. Esto se logró con \texttt{MultipleBufferPool} que mantiene una lista de \texttt{BufferPoolAssignment}, cada uno de los cuales \textit{acepta} algunas páginas y otras no. Para aquellas que acepta, nos asigna un buffer pool.

En nuestro caso particular vamos a utilizar un pool por tabla, así que creamos el \texttt{TableToBufferPoolAssignment} que acepta todas las páginas de una tabla en particular. Como utilidad, creamos una subclase de \texttt{MultipleBufferPool} (\texttt{PerTableMultipleBufferPool}) que recibe una lista de definiciones de pools (\texttt{TablePoolDefinition}); es decir, las tablas para las que creará un pool, el porcentaje del tamaño total que asignará a cada tabla y la estrategia de reemplazo de cada pool.


